package com.ruoyi.system.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.system.controller.vo.CarInfoItem;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 * 车辆-信息对象 car_info
 *
 * @author ruoyi
 * @date 2022-03-13
 */
public class CarInfo<T extends CarInfoItem> extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 车辆信息ID
     */
    private Long carInfoId;

    /**
     * 车辆ID
     */
    private Long carId;

    /**
     * 配置类型
     */
    private String configType;
    /**
     * 菜单ID
     */
    @Getter@Setter
    private Long menuId;

    /**
     * 详细信息
     */
    @Excel(name = "详细信息")
    private String info;

    /**
     * 状态（0正常 1停用）
     */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;
    @Getter
    @Setter
    private T infoMap;

    /**部件分析*/
    @Getter@Setter
    private List<CardPartAnalyse> analyses;

    public void setCarInfoId(Long carInfoId) {
        this.carInfoId = carInfoId;
    }

    public Long getCarInfoId() {
        return carInfoId;
    }

    public void setCarId(Long carId) {
        this.carId = carId;
    }

    public Long getCarId() {
        return carId;
    }

    public void setConfigType(String configType) {
        this.configType = configType;
    }

    public String getConfigType() {
        return configType;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public String getInfo() {
        return info;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("carInfoId", getCarInfoId()).append("carId", getCarId()).append("configType", getConfigType()).append("info", getInfo()).append("status", getStatus()).append("delFlag", getDelFlag()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).toString();
    }
}
